function ajax(options) { // 传入一个对象作为参数   

    var { type = "get", url, data = "", async = true, dataType = "text", success } = options;
    // 回调函数  把函数当成一个参数,传到另一个函数中执行

    if (typeof data == "object") {  // 如果是对象 转为 字符串(参数数据队列)
        var arr = [];
        for (var key in data) {
            var val = data[key];
            arr.push(key + "=" + val)
        }
        // console.log(arr);
        data = arr.join("&");
        // console.log(data);
    }


    // var success = function (res) {   //success接收传入的回调函数
    //     console.log("请求成功", res);
    // }
    var xhr = new XMLHttpRequest();

    if (type.toLowerCase() == "get") {
        // 有数据 url ? data  , 没有数据 url
        xhr.open("get", data ? url + "?" + data : url, async);

        xhr.send();

    } else if (type.toLowerCase() == "post") {

        xhr.open("post", url, async);

        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        xhr.send(data);
    }



    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var result = xhr.responseText;
            if (dataType.toLowerCase() === "json") {
                result = JSON.parse(xhr.responseText);   // 如果是json => 转化parse
            }
            // console.log(result);

            // 接口请求成功 且  有回调函数时执行
            if (success) {
                success(result);  //将result作为实参
            }
            // result  =>  接口请求的结果
            // isExist.php  => 判断用户名 手机号 邮箱 是否能存在
            // searchAllGrade.php  => 渲染成绩
            // deleteGradeById.php  => 删除后重新渲染
        }
    }
}

function get(options) { // 传入一个对象作为参数   

    var { url, data = "", async = true, dataType = "text", success } = options;
    // 回调函数  把函数当成一个参数,传到另一个函数中执行

    if (typeof data == "object") {  // 如果是对象 转为 字符串(参数数据队列)
        var arr = [];
        for (var key in data) {
            var val = data[key];
            arr.push(key + "=" + val)
        }
        // console.log(arr);
        data = arr.join("&");
        console.log(data);
    }


    // var success = function (res) {   //success接收传入的回调函数
    //     console.log("请求成功", res);
    // }


    var xhr = new XMLHttpRequest();

    xhr.open("get", url + "?" + data, async);

    xhr.send();

    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var result = xhr.responseText;
            if (dataType.toLowerCase() === "json") {
                result = JSON.parse(xhr.responseText);   // 如果是json => 转化parse
            }
            // console.log(result);

            // 接口请求成功 且  有回调函数时执行
            if (success) {
                success(result);  //将result作为实参
            }
            // result  =>  接口请求的结果
            // isExist.php  => 判断用户名 手机号 邮箱 是否能存在
            // searchAllGrade.php  => 渲染成绩
            // deleteGradeById.php  => 删除后重新渲染
        }
    }
}

function post(options) { // 传入一个对象作为参数   

    var { url, data = "", async = true, dataType = "text", success } = options;
    // 回调函数  把函数当成一个参数,传到另一个函数中执行

    if (typeof data == "object") {  // 如果是对象 转为 字符串(参数数据队列)
        var arr = [];
        for (var key in data) {
            var val = data[key];
            arr.push(key + "=" + val)
        }
        // console.log(arr);
        data = arr.join("&");
        console.log(data);
    }


    // var success = function (res) {   //success接收传入的回调函数
    //     console.log("请求成功", res);
    // }


    var xhr = new XMLHttpRequest();

    xhr.open("post", url, async);

    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    xhr.send(data);

    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var result = xhr.responseText;
            if (dataType.toLowerCase() === "json") {
                result = JSON.parse(xhr.responseText);   // 如果是json => 转化parse
            }
            // console.log(result);

            // 接口请求成功 且  有回调函数时执行
            if (success) {
                success(result);  //将result作为实参
            }
            // result  =>  接口请求的结果
            // isExist.php  => 判断用户名 手机号 邮箱 是否能存在
            // searchAllGrade.php  => 渲染成绩
            // deleteGradeById.php  => 删除后重新渲染
        }
    }
}

//  模拟jquery的$.ajax的封装
var $ = {};
$.ajax = ajax;

$.get = get;
$.post = post;


